package de.fh.dortmund.pk1.aufgabe1.cluedo;

//import java.awt.event.ActionEvent;
//import java.awt.event.ActionListener;
//import java.util.InputMismatchException;
import java.io.Serializable;
import java.util.Vector;

import javax.swing.ImageIcon;
import javax.swing.JDialog;
import javax.swing.JLabel;

//import de.fh.dortmund.pk1.aufgabe1.cmd.Konsole;
//import de.fh.dortmund.pk1.aufgabe1.exception.*;
//import de.fh.dortmund.pk1.aufgabe1.gui.Feld;
import de.fh.dortmund.pk1.aufgabe1.gui.HabKarteGUI;
//import de.fh.dortmund.pk1.aufgabe1.gui.Spielbrett;

public class Mensch extends Spieler implements Serializable  {
	/**
	 * @param name
	 *            Name des Spielers festlegen
	 */
	// konstruktor ensch
	public Mensch(String name, int xPosition, int yPosition, String bildSpielerName) {
		super();
		this.name = name;
		this.xPosition = xPosition;
		this.yPosition = yPosition;
		getKarte();

		// Bild fuerr Spieler wird geladen
		ImageIcon iconSpieler = new ImageIcon("./"+bildSpielerName);
		bildSpieler = new JLabel(iconSpieler);
		iconSpieler.setImageObserver(bildSpieler);
		bildSpieler.setBounds(getXPosition() * 29 + 10,
				getYPosition() * 29, 29, 29);
	}

	/**
	 * @param name
	 *            name des Spielers festlegen
	 * @param links
	 *            Linken Nachbarn des Spielers festlegen.
	 */
	// konstruktor Mensch
	public Mensch(String name, Spieler links, int xPosition, int yPosition, String bildSpielerName) {
		super();
		this.name = name;
		getKarte();
		nachbarLinks = links;
		this.xPosition = xPosition;
		this.yPosition = yPosition;
		
		// Bild fuerr Spieler wird geladen
		ImageIcon iconSpieler = new ImageIcon("./"+bildSpielerName);
		bildSpieler = new JLabel(iconSpieler);
		iconSpieler.setImageObserver(bildSpieler);
		bildSpieler.setBounds(getXPosition() * 29 + 10,
				getYPosition() * 29, 29, 29);
	}

		/* PUBLIC METHODEN */
	
	public void zeigeKarte(String karte1, String karte2, String karte3, Spieler sp)
	{
		Vector<String> zeigKarte = new Vector<String>();
		
			/* Setzen welche Karte vorhanden ist */
		if (karten[0].equals(karte1) || karten[1].equals(karte1) || karten[2].equals(karte1))
			zeigKarte.add(karte1);
		if (karten[0].equals(karte2) || karten[1].equals(karte2) || karten[2].equals(karte2))
			zeigKarte.add(karte2);
		if (karten[0].equals(karte3) || karten[1].equals(karte3) || karten[2].equals(karte3))
			zeigKarte.add(karte3);
			
		 
			JDialog gezeigt;
			JLabel gezeigtl = new JLabel();

			gezeigt = new JDialog();
			gezeigt.setLayout(null);
			gezeigt.setBounds(10, 10, 400, 200);
			gezeigt.add(gezeigtl);
			gezeigtl.setBounds(10, 10, 300, 70);
			new HabKarteGUI(zeigKarte, sp, gezeigt, gezeigtl, this);
	}

	// karten aus stapel bekommen
	private void getKarte() {
		// Konsole.vec.add(name + " hat folgende Karten bekommen\n");

		for (int i = 0; i < 3; i++) {
			try {
				// Karten werden zugeteilt
				karten[i] = Karte.verteileKartenSpieler();
				// Konsole.vec.add(" " + karten[i] + "\n");
				// System.out.println(karten[i]);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}
